package com.example.coursehub.service;
import com.example.coursehub.entity.*;
import com.example.coursehub.entity.Classes;

import java.util.List;
import java.util.Map;

public interface ClassService {

    Classes createClass(Classes Class);
    Classes updateClass(String classId,Classes Class);
    void deleteClass(String classId);
    Classes getClassById(String classId);
    Classes getClassByStudentId(String userId);
    Classes getClassByTeacherId(String userId);
    List<Classes> getAllClasses();

    // 班级成员管理
    void addStudentToClass(String classId, String userId);
    void removeStudentFromClass(String classId, String userId);
    void addTeacherToClass(String classId, String userId);
    void removeTeacherFromClass(String classId, String userId);
    void addTeachingAssistantToClass(String classId, String userId);
    void removeTeachingAssistantFromClass(String classId, String userId);
    void addExerciseToClass(String classId, String exerciseId);
    void removeExerciseFromClass(String classId, String exerciseId);
//    List<UserCourseChapterMaterial> getStudentLearningRecord(String courseId, String userId);
    List<User> getTeachersInClass(String classId);
    List<User> getStudentsInClass(String classId);
    List<Classes> getClassesByCourseId(String courseId);
    boolean hasUserJoinedAnyClass(String courseId, String userId);
    public Map<String, List<String>> getClassMembers(String userId, String courseId);
    List<Classes> getClassesByTeacherAndCourse(String teacherId, String courseId);
}
